#pragma once

#include <iostream>
#include <string>

using namespace std;

namespace protocol_ns
{
    //我们协议的样子:   
    //报文=报头+有效载荷
    //"有效载荷的长度"\r\n"有效载荷    "\r\n
    //"len          "\r\n"_x _oper _y"\r\n    ;len只表示有效载荷的长度，\r\n是分割符，不参与长度统计
    // 结构化数据，不能像网络直接发送
    class Request
    {
    public:
        Request()
        {
        }
        Request(int x, int y, char oper) : _x(x), _y(y), _oper(oper)
        {
        }
        bool Serialize(string *out)//序列化-> 多变一
        {
        }
        bool UnSerialize(const string &in)//反序列化-> 一变多
        {
        }
        ~Request()
        {
        }

    private:
        int _x;
        int _y;
        char _oper; // "+-*/%" _x _oper _y
    }; // 序列化装换成----"字符串"----发送

    class Response
    {
    public:
        Response()
        {
        }
        Response(int result, int code) : _result(result), _code(code)
        {
        }
        ~Response()
        {
        }

    private:
        int _result; // 结果
        int _code;   // 0：表示成功，1：除零，2：非法操作 ...
    }; //----"字符串"
}